Traditional database systems rely on disk storage for persistency of data. In many database management systems and other computing environments, transactions are received and processed on volatile memory, such as Random Access Memory (RAM), Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM), and then committed to memory on a disk or other storage device. Because the speed of conventional storage devices is magnitudes slower than DRAM and other volatile memory, significant efforts have been put into optimization of disk performance and the writing of data into storage. This adds significant code complexity to database management systems and continues to be a bottleneck in speed for many database applications.
Another problem with traditional database systems is the unnecessary and repetitive writing and rewriting of data into storage. Because many conventional database management systems lack the organization and space management necessary to prevent these unnecessary writes and rewrites of data, memory cells break down over time and cause inaccuracies in data in older database management systems.
Another problem with many traditional database systems is how to handle system failures that may happen during processing of a transaction and the committal of that transaction to storage. Many conventional database management systems incorporate a logging procedure for tracking transactions, which suffer from many of the same latency problems of committing transactions to disk memory. Consequently, processing and logging transactions is frequently a key inhibitor for high performance transaction processing.